#ifndef MAP_H
#define MAP_H
#include"../include/rbtree.h"
typedef struct {  
    RBTree *tree;  
    /*
    时间：2025.03.19
    作者：zdw
    函数名：put
    作用：数据插入
    参数说明：self操作对象，key插入键值，value插入数据
    */ 
   void (*put)(void *self, void *key, void *value);
   /*
   时间：2025.03.19
   作者：zdw
   函数名：contains
   作用：获取某个键的值
   参数说明：self操作对象，key查找键
   */ 
   void *(*get)(void *self, void *key);
   /*
   时间：2025.03.19
   作者：zdw
   函数名：erase
   作用：数据删除
   参数说明：self操作对象，key删除的键
   */ 
   void (*erase)(void *self, void *key);
   /*
   时间：2025.03.19
   作者：zdw
   函数名：clear
   作用：容器消除
   参数说明：self操作对象
   */ 
   void (*clear)(void *self);
   /*
   时间：2025.03.19
   作者：zdw
   函数名：data
   作用：获取容器数据
   参数说明：self操作对象
   */ 
   Array* (*data)(void *self);
} Map; 
/*
时间：2025.03.19
作者：zdw
函数名：map
作用：容器初始化
参数说明：compare比较函数
*/  
Map* map(int (*compare)(const void *, const void *));
#endif